package com.reliable.service.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.reliable.api.dto.ReliableTransactionRecord.RiskTransactionDTO;
import com.reliable.api.dto.excel.ReliableTransactionExportExcel;
import com.reliable.api.dto.transaction.BankCardTransactionDTO;
//import com.reliable.api.dto.ReliableTransactionRecord.RiskTransactionDTO;
import com.reliable.service.domain.ReliableTransactionRecord;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author jzh
 * @date 2025-10-30 15:00:00
 */
public interface ReliableTransactionRecordMapper extends BaseMapper<ReliableTransactionRecord> {

    /**
     * 导出指定时间之后的随机银行卡数据
     *
     * @param lastExportTime 上次导出时间
     * @param offset         偏移量
     * @param limit          限制条数
     * @return 银行卡数据列表
     */
    List<ReliableTransactionExportExcel> exportRandomBankCardsAfter(@Param("lastExportTime") Date lastExportTime,
                                                                   @Param("offset") int offset,
                                                                   @Param("limit") int limit);

    /**
     * 根据类型查找导出记录
     *
     * @param exportType 导出类型
     * @param temId      模板ID
     * @return 导出记录
     */
    ReliableTransactionRecord selectByType(@Param("exportType") String exportType, @Param("temId") Long temId);

    /**
     * 查询风险交易记录
     *
     * @return 风险交易记录列表
     */
   List<RiskTransactionDTO> selectRiskTransactions();

    /**
     * 分页查询银行卡交易记录
     *
     * @param accountIdentifier 银行卡号（模糊查询）
     * @param platformName      平台名称（模糊查询）
     * @param offset            偏移量
     * @param limit             限制条数
     * @return 银行卡交易记录列表
     */
    List<BankCardTransactionDTO> selectBankCardTransactions(@Param("accountIdentifier") String accountIdentifier,
                                                           @Param("platformName") String platformName,
                                                           @Param("offset") int offset,
                                                           @Param("limit") int limit);
}